/**
 * 
 */
package com.ffcs.crmd.tsp.server.jdbc.support;

import java.util.List;

import com.ffcs.crmd.tsp.api.dto.page.PageInfo;
import com.ffcs.crmd.tsp.common.exception.TspException;
import com.ffcs.crmd.tsp.server.core.QuartzSchedulerHandler;
import com.ffcs.crmd.tsp.server.jdbc.entity.Job;
import com.ffcs.crmd.tsp.server.jdbc.entity.JobDetail;
import com.ffcs.crmd.tsp.server.jdbc.entity.JobDetailParam;
import com.ffcs.crmd.tsp.server.jdbc.entity.JobGroup;
import com.ffcs.crmd.tsp.server.jdbc.entity.JobIdentityInfo;
import com.ffcs.crmd.tsp.server.jdbc.entity.Slice;
import com.ffcs.crmd.tsp.server.jdbc.entity.SliceGroup;
import com.ffcs.crmd.tsp.server.jdbc.entity.TaskIdentity;

/**
 * 功能说明:
 *
 * @author FFCS-ZHONGFUHUA
 * 
 * @since 
 *
 */
public interface ServiceSupport {
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @throws TspException 
     */
    void addJob(final Job job) throws TspException;

    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @throws TspException 
     */
    void addJobDetail(final JobDetail jobDetail) throws TspException;

    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @throws TspException 
     */
    void addJobDetailParam(final JobDetailParam jobDetailParam) throws TspException;
    
    /**
     * 
     * 功能说明:
     * 
     * @param jobGroup
     * @throws TspException
     */
    void addJobGroup(final JobGroup jobGroup) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @throws TspException 
     */
    void addJobIdentityInfo(final JobIdentityInfo jobIdentityInfo) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @throws TspException 
     */
    void addSlice(final Slice slice) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @throws TspException 
     */
    void addSliceGroup(final SliceGroup sliceGroup) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @throws TspException 
     */
    void addTaskIdentity(final TaskIdentity taskIdentity) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param jobGroup
     */
    void deleteJob(final Job job) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param jobGroup
     */
    void deleteJobDetail(final JobDetail jobDetail) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param jobGroup
     */
    void deleteJobDetailParam(final JobDetailParam jobDetailParam) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param jobGroup
     * @throws TspException
     */
    void deleteJobGroup(final JobGroup jobGroup) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param jobGroup
     */
    void deleteJobIdentityInfo(final JobIdentityInfo jobIdentityInfo) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param jobGroup
     */
    void deleteSlice(final Slice slice) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param jobGroup
     */
    void deleteSliceGroup(final SliceGroup sliceGroup) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param jobGroup
     */
    void deleteTaskIdentity(final TaskIdentity taskIdentity) throws TspException;
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    Job getJob(final Job job) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    JobDetail getJobDetail(final JobDetail jobDetail) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    JobDetailParam getJobDetailParam(final JobDetailParam jobDetailParam) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param job
     * @throws TspException
     */
    JobGroup getJobGroup(final JobGroup jobGroup) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    JobIdentityInfo getJobIdentityInfo(final JobIdentityInfo jobIdentityInfo) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    Slice getSlice(final Slice slice) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    SliceGroup getSliceGroup(final SliceGroup sliceGroup) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    TaskIdentity getTaskIdentity(final TaskIdentity taskIdentity) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param jobGroup
     */
    void pauseJob(final Job job) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param jobGroup
     */
    void pauseJobDetail(final JobDetail jobDetail) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param jobGroup
     */
    void pauseJobGroup(final JobGroup jobGroup) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    List<Job> queryJob(final Job job) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @return
     * @throws TspException
     */
    List<JobDetail> queryJobDetail() throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    List<JobDetail> queryJobDetail(final JobDetail jobDetail) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    PageInfo<JobDetail> queryJobDetailPage(final JobDetail jobDetail) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    List<JobDetailParam> queryJobDetailParam(final JobDetailParam jobDetailParam) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    PageInfo<JobDetailParam> queryJobDetailParamPage(final JobDetailParam jobDetailParam) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    List<JobGroup> queryJobGroup(final JobGroup jobGroup) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    PageInfo<JobGroup> queryJobGroupPage(final JobGroup jobGroup) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    List<JobIdentityInfo> queryJobIdentityInfo(final JobIdentityInfo jobIdentityInfo) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    PageInfo<JobIdentityInfo> queryJobIdentityInfoPage(final JobIdentityInfo jobIdentityInfo) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    PageInfo<Job> queryJobPage(final Job job) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    List<Slice> querySlice(final Slice slice) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    List<SliceGroup> querySliceGroup(final SliceGroup sliceGroup) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    PageInfo<SliceGroup> querySliceGroupPage(final SliceGroup sliceGroup) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    PageInfo<Slice> querySlicePage(final Slice slice) throws TspException;
    
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    List<TaskIdentity> queryTaskIdentity(final TaskIdentity taskIdentity) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param job
     * @return 
     * @throws TspException 
     */
    PageInfo<TaskIdentity> queryTaskIdentityPage(final TaskIdentity taskIdentity) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param jobGroup
     */
    void resumeJob(final Job job) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param jobGroup
     */
    void resumeJobDetail(final JobDetail jobDetail) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param conn
     * @param jobGroup
     */
    void resumeJobGroup(final JobGroup jobGroup) throws TspException;
    
    /**
     * 功能说明:
     * 
     * @param quartzSchedulerHandler
     */
    void setQuartzSchedulerHandler(QuartzSchedulerHandler quartzSchedulerHandler);

    /**
     * 功能说明:
     * 
     * @param conn
     * @param jobGroup
     */
    void updateJob(final Job job) throws TspException;

    /**
     * 功能说明:
     * 
     * @param conn
     * @param jobGroup
     */
    void updateJobDetail(final JobDetail jobDetail) throws TspException;

    /**
     * 功能说明:
     * 
     * @param conn
     * @param jobGroup
     */
    void updateJobDetailParam(final JobDetailParam jobDetailParam) throws TspException;

    /**
     * 功能说明:
     * 
     * @param jobGroup
     * @throws TspException
     */
    void updateJobGroup(final JobGroup jobGroup) throws TspException;

    /**
     * 功能说明:
     * 
     * @param conn
     * @param jobGroup
     */
    void updateSlice(final Slice slice) throws TspException;

    /**
     * 功能说明:
     * 
     * @param conn
     * @param jobGroup
     */
    void updateSliceGroup(final SliceGroup sliceGroup) throws TspException;

    /**
     * 功能说明:
     * 
     * @param conn
     * @param jobGroup
     */
    void updateTaskIdentity(final TaskIdentity taskIdentity) throws TspException;
    
}
